// 时间限制： 1000MS
// 内存限制： 65536KB
// 题目描述：
// 现在小程在运营一个游戏，游戏需要向含有特定关键词的用户发放惊喜福利。

// 现在给定你所有用户的用户名和需要检测的关键词。

// 你的任务是反馈给运营，本次发放会发放福利给多少名用户。

// 用户名仅含有大小写字母和数字。关键词仅包含字母，且关键词检测不区分大小写。



// 输入描述
// 第一行一个正整数n表示游戏有n个用户，一个字符串s表示需要检测的关键词。中间有空格隔开。

// 接下来n行每行一个字符串，为n个用户名。

// 输出描述
// 一行一个正整数表示本次发放会发放福利给多少名用户。

#include<bits/stdc++.h>
using namespace std;


string to_upper(string str){
    for(int i=0;i<str.size();++i){
        if(str[i]>='a' && str[i]<='z'){
            str[i]=str[i]-32;
        }
    }
    return str;
}

int main(int argc, char const *argv[])
{
    int n;
    while(cin>>n){
        string key;
        cin>>key;
        vector<string> vec;
        for(int i=0;i<n;++i){
            string str;
            cin>>str;
            vec.emplace_back(str);
        }
        for(int i=0;i<key.size();++i){
            if(key[i]>='a' && key[i]<='z'){
                key[i]=key[i]-32;
            }
        }
        int res=0;
        int len=key.size();
        for(int i=0;i<n;++i){
            if(vec[i].size()>=key.size()){
                for(int j=0;j<vec[i].size();++j){
                    if(isalpha(vec[i][j]) && ((vec[i][j]==key[0]) || vec[i][j]==key[0]+32) && (vec[i].size()-j)>=len){
                        string str_temp = vec[i].substr(j,len);
                        string str_temp_up=to_upper(str_temp);
                        if(str_temp_up==key){
                            ++res;
                        }
                    }
                }
            }

        }
        cout<<res<<endl;
        // cout<<key<<endl;
    }
    // cout<<int('A')<<" "<<int('a'-32)<<endl;
    return 0;
}
